From 5e5ecbbf811bde57d7bacad4f0f0d50bfe51fbae Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 4 Jul 2014 15:46:47 -0400 Subject: [PATCH] widget-factory: show off needs-attention stack pages When clicking 'Action' in the 'Act' dialog, we mark the third page as needing attention a second later. This unveils that we currently don't have any theming for needs-attention in Adwaita. --- demos/widget-factory/widget-factory.c | 26 +++++++++++++++++++++++++- demos/widget-factory/widget-factory.ui | 2 +- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/demos/widget-factory/widget-factory.c b/demos/widget-factory/widget-factory.c index 9ba633f7e7..041b0b2401 100644 --- a/demos/widget-factory/widget-factory.c +++ b/demos/widget-factory/widget-factory.c @@ -75,7 +75,7 @@ activate_about (GSimpleAction *action, }; gchar *version; - version = g_strdup_printf ("%s,\nRunning against GTK+ %d.%d.%d", + version = g_strdup_printf ("%s\nRunning against GTK+ %d.%d.%d", PACKAGE_VERSION, gtk_get_major_version (), gtk_get_minor_version (), @@ -283,12 +283,32 @@ close_dialog (GtkWidget *dialog) gtk_widget_hide (dialog); } +static gboolean +demand_attention (gpointer page) +{ + GtkWidget *stack; + + stack = gtk_widget_get_parent (page); + gtk_container_child_set (GTK_CONTAINER (stack), page, + "needs-attention", TRUE, + NULL); + + return G_SOURCE_REMOVE; +} + +static void +action_dialog_button_clicked (GtkButton *button, GtkWidget *page) +{ + g_timeout_add (1000, demand_attention, page); +} + static void activate (GApplication *app) { GtkBuilder *builder; GtkWindow *window; GtkWidget *widget; + GtkWidget *page; GtkWidget *dialog; GtkAdjustment *adj; static GActionEntry win_entries[] = { @@ -356,6 +376,10 @@ activate (GApplication *app) widget = (GtkWidget *)gtk_builder_get_object (builder, "action_dialog_button"); g_signal_connect (widget, "clicked", G_CALLBACK (show_dialog), dialog); + widget = (GtkWidget *)gtk_builder_get_object (builder, "act_action_dialog"); + page = (GtkWidget *)gtk_builder_get_object (builder, "page3_content"); + g_signal_connect (widget, "clicked", G_CALLBACK (action_dialog_button_clicked), page); + dialog = (GtkWidget *)gtk_builder_get_object (builder, "preference_dialog"); g_signal_connect (dialog, "response", G_CALLBACK (close_dialog), NULL); widget = (GtkWidget *)gtk_builder_get_object (builder, "preference_dialog_button"); diff --git a/demos/widget-factory/widget-factory.ui b/demos/widget-factory/widget-factory.ui index b0f19177b8..13a3d43b84 100644 --- a/demos/widget-factory/widget-factory.ui +++ b/demos/widget-factory/widget-factory.ui @@ -2727,7 +2727,7 @@ Suspendisse feugiat quam quis dolor accumsan cursus. - + True True True -- 2.30.2